package com.rchat.pocmini.contact;

import android.util.Log;

import com.airtalkee.sdk.OnContactPresenceListener;
import com.airtalkee.sdk.entity.AirContact;

import java.util.HashMap;

/**
 * Created by ljd on 2017/2/7.
 * <p>
 * OnContactPresenceListener 订阅接口实现类，返回与联系人相关的事件
 */

public class PocContactPresenceListener implements OnContactPresenceListener {

    //============= CONTACT_STAT值 ===========
    //用户不在线
    public static final int CONTACT_STATE_NONE = AirContact.CONTACT_STATE_NONE;
    //用户在线（前台）
    public static final int CONTACT_STATE_ONLINE = AirContact.CONTACT_STATE_ONLINE;
    //用户后台在线
    public static final int CONTACT_STATE_ONLINE_BG = AirContact.CONTACT_STATE_ONLINE_BG;


    /**
     * 当用户登录后或订阅后，系统会一次性返回所有用户群的在线状态。为呈现每个联系人的具体状态，
     * 可通过getContactStateById方法获取每一个用户的状态值。
     *
     * @param isSubscribed 表明是否为调用订阅接口所返回的用户在线状态，如未订阅返回的是非订阅的用户状态
     * @param presenceMap  一次性返回的用户群状态列表，一般仅包含在线的用户。此参数为HashMap，
     *                     其中String表示用户的ID，Integer表示对应的用户状态（参见CONTACT_STATE）
     */
    @Override
    public void onContactPresence(boolean isSubscribed, HashMap<String, Integer> presenceMap) {
    }

    /**
     * 用户的任一联系人或订阅的用户群状态发生上下线状态变化时便会触发此事件，为呈现每个联系人的具体状态，可通过
     * getContactStateById方法获取每一个用户的状态值
     *
     * @param isSubscribed 表明是否为调用订阅接口所返回的用户在线状态，如未订阅返回的是非订阅的用户状态
     * @param userId       状态发生变化的用户ID
     * @param state        变化后的状态值，参考CONTACT_STATE
     */
    @Override
    public void onContactPresence(boolean isSubscribed, String userId, int state) {
    }
}
